﻿@model Vizzio.Models.IngresoDeProducto

@{
    ViewBag.Title = "Registrar Ingreso de Producto";
}

<h2>Registrar Ingreso de Productos</h2>


@using (Html.BeginForm(null,null,FormMethod.Post,new {@id="form_ingreso_productos"})) 
{
    
    @Html.AntiForgeryToken()
    <input type="text" class="hidden contador_productos" value="0" />

    <div class="form-horizontal" id="ContenedorPrincipal">
        <h4>Datos de Ingreso</h4>
        <p><font color="blue" face="Verdana" size="2">Todos los campos con * son obligatorios</font></p>
        <hr />
        @Html.ValidationSummary(true)

        <div class="control-group form-group">
            @*@Html.LabelFor(model => model.CodigoDeIngresoDeProducto, "Codigo de Ingreso de Producto", new { @class = "control-label col-md-2" })*@
            <label class="control-label col-md-2"><strong>* Codigo de Ingreso de Producto</strong></label>
            <div class="col-md-10">
                @Html.TextBoxFor(model => model.CodigoDeIngresoDeProducto, new { @class = "form-control hidden", @id = "CodigoDeIngresoDeProducto1", required = "", @Value = "I-" + @ViewBag.CodigoDeIngresoDeProducto })
                @Html.TextBoxFor(model => model.CodigoDeIngresoDeProducto, new { @class = "form-control", @id = "CodigoDeIngresoDeProducto2", disabled = "", required = "", @Value = "I-" + @ViewBag.CodigoDeIngresoDeProducto })
            </div>
        </div>


        <div class="control-group form-group">
            @*@Html.LabelFor(model => model.Concepto, "* Concepto de Ingreso", new { @class = "control-label col-md-2 control-label" })*@
            <label class="control-label col-md-2"><strong>* Concepto de Ingreso</strong></label>
            <div class="col-md-10 controls">
                @Html.DropDownListFor(model => model.Concepto, new[] { new SelectListItem { Value = "Importacion", Text = "Por Importacion", Selected = true }, new SelectListItem { Value = "InventarioInicial", Text = "Por Inventario Inicial" }, new SelectListItem { Value = "Otros", Text = "Otros" } }, new { @id = "Concepto" })
            </div>
        </div>

        <div class="form-group">
           @* @Html.LabelFor(model => model.Fecha, "* Fecha de Ingreso", new { @class = "control-label col-md-2" })*@
            <label class="control-label col-md-2"><strong>* Fecha de Ingreso</strong></label>
            <div class="col-md-10">
                <div class="input-group date">
                    <span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
                    <input type="text" required name="Fecha" class="form-control" readonly value="@DateTime.Now.Date.ToShortDateString()">
                </div>
            </div>
        </div>

        <div class="form-group">
            @*@Html.LabelFor(model => model.Descripcion, new { @class = "control-label col-md-2" })*@
            <label class="control-label col-md-2"><strong>* Descripcion</strong></label>
            <div class="col-md-10">
                @Html.TextAreaFor(model => model.Descripcion, new { @class = "form-control", maxlength = "500", data_validation_maxlength_message = "Muy largo: Ingrese 500 o menos caracteres" })
                <p class="help-block">Maximo 500 Caracteres</p>
            </div>
        </div>


        <hr />
        <h4>Lista de Productos</h4>
        <p><font color="blue" face="Verdana" size="2">Todos los campos con * son obligatorios</font></p>
        <div class="row">
            <div class="col-md-12">
                <div class="table-responsive">
                    <table class="table table-bordered">
                        <thead >
                            <tr class="info">
                                <th class="col-lg-2">* Producto</th>
                                <th class="col-lg-2">* Socio</th>
                                <th class="col-lg-1 cantidad_esperada" data-container="body" data-toggle="popover" data-placement="top" data-content="Hay datos incorrectos!!">* Cantidad</th>
                                <th class="col-lg-1"></th>
                                <th class="col-lg-2 precio_unitario" data-container="body" data-toggle="popover" data-placement="top" data-content="Hay datos incorrectos!!">* Precio Unitario</th>
                                <th class="col-lg-2 numero_de_lote">* Nro. Lote</th>
                                <th class="col-lg-2">* Fecha de Vencimiento</th>
                                <th class="col-lg-2">Cant. Total</th>
                                <th class="col-lg-2">Precio Sub Total</th>
                                <th class="col-lg-1"></th>
                            </tr>
                        </thead>
                        <tbody id="contenedor_de_productos"></tbody>
                    </table>
                </div>
                <div class='control-group col-lg-offset-9 col-lg-3'>
                    <div class='controls'>
                        <b>PRECIO TOTAL:</b>
                        <span class="badge" id="total">0</span>
                        Bs.
                    </div>
                </div>
                <div class="col-md-12">
                    <!-- Button trigger modal para agregar productos -->
                    <a href="#" class="btn btn-success btn-sm" data-toggle="modal" data-target="#myModal">
                        <span class="glyphicon glyphicon-plus"></span> Agregar Productos
                    </a>
                </div>

            </div>
        </div>

        <hr />
        <div class="form-group row">
            <div class="col-md-offset-2 col-md-1">
                <button type="submit" class="btn btn-primary">
                    <span class="glyphicon glyphicon-ok"></span> Registrar
                </button>
            </div>
            <div class="col-md-offset-1 col-md-1">
                <a href="@Url.Action("Index", "IngresoDeProducto")" class="btn btn-primary">
                    <span class="glyphicon glyphicon-remove"></span> Cancelar
                </a>
            </div>
        </div>
    </div>

}

<!-- Modal Para agregar productos a la importacion...-->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title" id="myModalLabel">Agregar Producto</h4>
            </div>
            <div class="modal-body">

                <div class="alert alert-warning alert-dismissable alert-warning-add-producto">
                    @*<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>*@
                    <strong>Accion no valida!!</strong> Ya existe el producto para este socio.
                </div>
                <div class="alert alert-success alert-dismissable alert-success-add-producto">
                    @*<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>*@
                    <strong>Accion Correcta. </strong> Se agregó el producto para el socio selecconado.
                </div>

                <p><font color="blue" face="Verdana" size="2">Todos los campos con * son requeridos</font></p>
                <form class="form-horizontal" role="form" id="form_add_producto">
                    <div class="form-group">
                        <label for="producto" class="col-sm-2 control-label">* Producto</label>
                        <div class="col-md-10">
                                @Html.DropDownList("ListaDeProductos", ((IEnumerable<SelectListItem>)ViewBag.ListaDeProductos), "-Elija una producto-", new { @id = "lista_de_productos", @class = "form-control lista_de_productos", required = "" })
                                <p class="help-block"></p>
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="socio" class="col-sm-2 control-label">* Socio</label>
                        <div class="col-md-10">
                            @Html.DropDownList("ListaDeSocios", ((IEnumerable<SelectListItem>)ViewBag.ListaDeSocios), "-Elija una Socio-", new { @id = "lista_de_socios", @class = "form-control lista_de_socios", required = "" })
                            <p class="help-block"></p>
                        </div>
                    </div>

                    @*<div class="form-group">
                        <label for="cantidad" class="col-sm-2 control-label">* Cantidad</label>
                        <div class="col-sm-10">
                            <input type="text" class="form-control" id="add_cantidad" required data-validation-required-message='Campo requerido' min='1' data-validation-min-message='Debe ser mayor a cero' maxlength='7' data-validation-maxlength-message='Muy grande. Maximo 7 digitos' data-validation-regex-regex='[0-9]+' data-validation-number-message='Solo numeros enteros' data-validation-regex-message='Debe ingresar un entero positivo' placeholder="Cantidad">
                            <p class="help-block">Maximo 7 digitos</p>
                        </div>
                    </div>*@

                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span>Cancelar</button>
                        <button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-ok"></span> Agregar</button>
                    </div>
                </form>
            </div>
            
        </div>
    </div>
</div>

    @section Scripts {

        
        <script type="text/javascript">

            //$('th.cantidad_esperada').popover('show');
            //$('th.precio_unitario').popover('show');
            //$('th.numero_de_lote').popover('show');
            $(".alert-warning-add-producto").hide(); //Cerramos alerta de warning
            $(".alert-success-add-producto").hide(); //Cerramos alerta de susscess

            var contador_producto_esperado = 0;
            var contador_producto_de_socio = 0;

            var fecha = new Date();
            var fechaActual = fecha.getDay + "-" + fecha.getMonth + "-" + fecha.getFullYear;
            var fechaMaxima = fecha;
            fechaMaxima.setMonth(fecha.getMonth() + 12);
            $(function () { $("input,select,textarea").not("[type=submit]").jqBootstrapValidation(); });
            $("select.lista_de_productos").combobox();
            $("select.lista_de_socios").combobox();

            $('.input-group.date').datepicker({
                format: "dd/mm/yyyy",
                weekStart: 1,
                startDate: fechaActual,
                endDate: fechaMaxima,
                todayBtn: "linked",
                language: "es",
                autoclose: true,
                todayHighlight: true
            });
            

            //$("#form_ingreso_productos").submit(function (event) {
            //    if(!validar_campos_precio())
            //        event.preventDefault();
            //});

            //function validar_campos_precio()
            //{
            //    var res = true;
            //    //var inputs_cantidad = $('input.precio_unitario');
            //    //$(inputs_cantidad).each(function () {
            //    //    if($(this).val())
            //    //});

            //    return res;
            //}
            
            //-------------------------- Funcion que agrega un nuevo producto cuando se hace clic en el boton Agregrar Producto ------------------------------//
            $("#form_add_producto").submit(function (event) {
                //alert("ok");
                event.preventDefault();
                //$(".alert-warning-add-producto").alert();
                var producto_id = $("input[name='ListaDeProductos']").val();
                var producto_nombre = $("input.lista_de_productos").val();
                var socio_id = $("input[name='ListaDeSocios']").val();
                var socio_nombre = $("input.lista_de_socios").val();
                //var add_cantidad = $("#add_cantidad").val();
                //var add_cantidad = 0;
                var contenedor_de_productos = $("#contenedor_de_productos");

                //Verificamos si el el producto fue agregado o no
                if ($("tr#" + producto_id).length != 0) {
                    //Significa que el producto ya fue registrado
                    if ($("td#" + producto_id + "_" + socio_id).length != 0) {
                        //Significa que el producto ya fue registrado para este socio
                        createAutoClosingAlert(".alert-warning-add-producto", 7000);
                    }
                    else {
                        //Significa que existe el producto pero no para este socio
                        var fila_producto = $("tr#" + producto_id);
                        var celda_producto = $(fila_producto).find("td").first();
                        var rowspan = parseInt(celda_producto.attr("rowspan"));
                        rowspan = rowspan + 1;

                        celda_producto.attr('rowspan', rowspan);
                        $(fila_producto).find("td.precio_unitario").attr('rowspan', rowspan);
                        $(fila_producto).find("td.numero_de_lote").attr('rowspan', rowspan);
                        $(fila_producto).find("td.fecha_de_vencimiento").attr('rowspan', rowspan);
                        $(fila_producto).find("td.cantidad_total").attr('rowspan', rowspan);
                        $(fila_producto).find("td.precio_sub_total").attr('rowspan', rowspan);
                        $(fila_producto).find("td.eliminar_producto").attr('rowspan', rowspan);


                        var nuevo_producto = "<tr class='" + producto_id + "'>"
                                        + "<td class='socio' id='" + producto_id + "_" + socio_id + "'>"
                                                + "<input class='eliminar_producto_de_socio' type='text' hidden name='ProductoDeSocio[" + contador_producto_de_socio + "].Eliminar' value='0'/>"
                                                + "<input class='producto_de_socio' type='text' hidden name='ProductoDeSocio[" + contador_producto_de_socio + "].ProductoID' value='" + producto_id + "'/>"
                                                + "<input class='socio' type='text' hidden name='ProductoDeSocio[" + contador_producto_de_socio + "].SocioID' value='" + socio_id + "'/>"
                                                + "<em>" + socio_nombre + "</em>"
                                            + "</td>"
                                            + "<td class='cantidad_esperada'>"
                                                + "<div class='control-group form-group'><div class='input-group input-group-sm col-md-10 col-md-offset-1'><input class='form-control cantidad_esperada' type='text' name='ProductoDeSocio[" + contador_producto_de_socio + "].CantidadEsperada' required data-validation-required-message='Campo requerido' maxlength='6' data-validation-maxlength-message='Muy grande. Maximo 6 digitos'  placeholder='Cantidad'</div>"
                                            + "</td>"
                                            + "<td class='eliminar_socio'>"
                                                    + "<a class='btn btn-danger btn-xs' onclick='eliminar_socio(this)'>"
                                                        + "<span class='glyphicon glyphicon-remove'></span>"
                                                    + "</a>"
                                            + "</td>"
                                        + "</tr>";

                        contador_producto_de_socio = contador_producto_de_socio + 1;
                        $(nuevo_producto).insertAfter(fila_producto);
                        //calcular_totales();
                        createAutoClosingAlert(".alert-success-add-producto", 5000);
                    }
                }
                else {
                    var nuevo_producto = "<tr id='" + producto_id + "' class='nuevo_producto " + producto_id + "'>"
                                            + "<td class='producto' rowspan='1'>"
                                                + "<input class='eliminar_producto_esperado' type='text' hidden name='ProductoEsperado[" + contador_producto_esperado + "].Eliminar' value='0'/>"
                                                + "<input class='producto' type='text' hidden name='ProductoEsperado[" + contador_producto_esperado + "].ProductoID' value='" + producto_id + "' />"
                                                + "<em>" + producto_nombre + "</em>"
                                            + "</td>"
                                            + "<td class='socio' id='" + producto_id + "_" + socio_id + "'>"
                                                + "<input class='eliminar_producto_de_socio' type='text' hidden name='ProductoDeSocio[" + contador_producto_de_socio + "].Eliminar' value='0'/>"
                                                + "<input class='producto_de_socio' type='text' hidden name='ProductoDeSocio[" + contador_producto_de_socio + "].ProductoID' value='" + producto_id + "'/>"
                                                + "<input class='socio' type='text' hidden name='ProductoDeSocio[" + contador_producto_de_socio + "].SocioID' value='" + socio_id + "'/>"
                                                + "<em>" + socio_nombre + "</em>"
                                            + "</td>"
                                            + "<td class='cantidad_esperada'>"
                                                + "<div class='control-group form-group'><div class='input-group input-group-sm col-md-10 col-md-offset-1'><input class='form-control cantidad_esperada' type='text' name='ProductoDeSocio[" + contador_producto_de_socio + "].CantidadEsperada' required data-validation-required-message='Campo requerido' maxlength='6' data-validation-maxlength-message='Muy grande. Maximo 6 digitos' placeholder='Cantidad'/></div></div>"
                                            + "</td>"
                                            + "<td class='eliminar_socio'>"
                                                    + "<a class='btn btn-danger btn-xs eliminar_socio' onclick='eliminar_socio(this)'>"
                                                        + "<span class='glyphicon glyphicon-remove'></span>"
                                                    + "</a>"
                                            + "</td>"
                                            + "<td class='precio_unitario'>"
                                                + "<div class='input-group input-group-sm'>"
                                                    + "<span class='input-group-addon'>$</span>"
                                                    + "<input class='form-control precio_unitario' name='ProductoEsperado[" + contador_producto_esperado + "].PrecioUnitarioDeCompra' required/>"
                                                + "</div>"
                                            + "</td>"
                                            + "<td class='numero_de_lote'>"
                                                + "<div class='input-group input-group-sm'><input class='form-control numero_de_lote' type='text' name='ProductoEsperado[" + contador_producto_esperado + "].NoLote' required data-validation-required-message='Campo requerido'/></div>"
                                            + "</td>"
                                            + "<td class='fecha_de_vencimiento'>"
                                                + "<div class='input-group input-group-sm date'><span class='input-group-addon'><i class='glyphicon glyphicon-th'></i></span><input class='form-control fecha_de_vencimiento' type='text' name='ProductoEsperado[" + contador_producto_esperado + "].FechaDeVencimiento' required></div>"
                                            + "</td>"
                                            + "<td class='cantidad_total success'>"
                                                + "<input class='cantidad_total' type='text' hidden name='ProductoEsperado[" + contador_producto_esperado + "].CantidadEsperada' value='0.00'/>"
                                                + "<em class='cantidad_total'>0</em>"
                                            + "</td>"
                                            + "<td class='precio_sub_total warning'>"
                                                + "<input class='precio_sub_total' type='text' hidden name='ProductoEsperado[" + contador_producto_esperado + "].PrecioTotal' value='0.00'/>"
                                                + "<em class='precio_sub_total'>0.00</em>"
                                            + "</td>"
                                            + "<td class='eliminar_producto'>"
                                                + "<a class='btn btn-danger btn-sm eliminar_producto' onclick='eliminar_producto(this)'>"
                                                    + "<span class='glyphicon glyphicon-remove'></span> Eliminar"
                                                + "</a>"
                                            + "</td>"
                                        + "</tr>";

                    contenedor_de_productos.append(nuevo_producto);
                    createAutoClosingAlert(".alert-success-add-producto", 5000);
                    contador_producto_de_socio = contador_producto_de_socio + 1;
                    contador_producto_esperado = contador_producto_esperado + 1;
                };

                               
                var fecha2 = new Date();
                var fechaActual2 = fecha2.getDay + "-" + fecha2.getMonth + "-" + fecha2.getFullYear;
                var fechaMaxima2 = fecha2;
                fechaMaxima2.setMonth(fecha2.getMonth() + 48);
                $('.input-group.date').datepicker({
                    format: "dd/mm/yyyy",
                    weekStart: 1,
                    startDate: fechaActual2,
                    endDate: fechaMaxima2,
                    todayBtn: "linked",
                    language: "es",
                    autoclose: true,
                    todayHighlight: true
                });

            });



            $("#contenedor_de_productos").on("change", "input.cantidad_esperada", function (event) {
                if (parseInt($(this).val()) == 0)
                    $(this).val('');
                calcular_totales();
            });

            $("#contenedor_de_productos").on("keydown", "input.cantidad_esperada", function (event) {
                //alert(e.keyChar);
                if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9) {
                    // let it happen, don't do anything
                }
                else {
                    if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105) || ($(this).val() == '' && event.keyCode == 48)) {
                        event.preventDefault();
                    }
                }
            });


            $("#contenedor_de_productos").on("change", "input.precio_unitario", function (event) {
                //alert(parseFloat($(this).val()));
                if (parseFloat($(this).val()) == 0)
                    $(this).val('');
                calcular_totales();
            });

            $("#contenedor_de_productos").on("keypress", "input.precio_unitario", function (event) {
                var evt = event || window.event;
                var keyCode = evt.keyCode || evt.which;
                //alert(String.fromCharCode(keyCode));

                if (keyCode == 8 || keyCode == 9) {
                    // let it happen, don't do anything
                }
                else {
                    var floatRegex = /^(?:[1-9]\d*|0)?(?:\.\d+)?$/;
                    var numero_a_probar = $(this).val();
                    //alert(event.keyCode);
                    if (numero_a_probar!='' && numero_a_probar.indexOf(".") == -1 && String.fromCharCode(keyCode) == '.') //No contiene el punto decimal
                    {
                        //No hacer nada y continuar
                        //alert("punto");
                    }
                    else {
                        numero_a_probar = numero_a_probar + String.fromCharCode(keyCode);
                        if (!numero_a_probar.match(floatRegex)) {
                            event.preventDefault();
                        }
                    }                    
                }
            });

            function createAutoClosingAlert(selector, delay) {
                var alerta = $(selector);
                alerta.show('fast');
                window.setTimeout(function () { alerta.hide('fast') }, delay);
            }

       
            function calcular_totales() {
                var tr_nuevo_producto=null;
                var tr_list = $("tbody > tr:visible");
                var cantidadSubTotal = 0;
                var ultimoPrecio = 0;
                $(tr_list).each(function () {
                    
                    //alert($(this).next('tr').html());
                    //alert(typeof ($(this).nextAll("tr").filter(':visible').first()) + "    " + $(this).nextAll("tr").filter(':visible').first().html() + "    tamaño: " + $(this).nextAll("tr").filter(':visible').first().length);  
                    if ($(this).nextAll("tr:visible").first().length <= 0) //Es el ultimo?
                    {                        
                        if ($(this).hasClass("nuevo_producto") == true) //Es el primero del grupo??
                        {
                            //alert("ok1");

                            if (typeof (tr_nuevo_producto) != 'undefined' && tr_nuevo_producto != null) //Si no es el unico
                            {
                                ultimoPrecio = ultimoPrecio * cantidadSubTotal;
                                //Guardamos los datos
                                tr_nuevo_producto.find('input.cantidad_total').val(cantidadSubTotal);
                                tr_nuevo_producto.find('em.cantidad_total').text(addCommas(cantidadSubTotal));

                                tr_nuevo_producto.find('input.precio_sub_total').val(ultimoPrecio.toFixed(2));
                                tr_nuevo_producto.find('em.precio_sub_total').text(addCommas(ultimoPrecio.toFixed(2)));
                            }
                            tr_nuevo_producto = $(this);
                            ultimoPrecio = parseFloat(tr_nuevo_producto.find("input.precio_unitario").val().replace(',', ''));
                            cantidadSubTotal = 0;
                        }
                        cantidadSubTotal = cantidadSubTotal + parseInt($(this).find("input.cantidad_esperada").val());
                        ultimoPrecio =ultimoPrecio * cantidadSubTotal;
                        //Guardamos los datos
                        tr_nuevo_producto.find('input.cantidad_total').val(cantidadSubTotal);
                        tr_nuevo_producto.find('em.cantidad_total').text(addCommas(cantidadSubTotal));

                        tr_nuevo_producto.find('input.precio_sub_total').val(ultimoPrecio.toFixed(2));
                        tr_nuevo_producto.find('em.precio_sub_total').text(addCommas(ultimoPrecio.toFixed(2)));
                        //alert("cantidad: "+cantidadSubTotal +"   precio: "+ultimoPrecio);
                        //alert("ok2");
                    }
                    else {
                        if ($(this).hasClass("nuevo_producto") == true) //Es primero del grupo?? 
                        {
                            //alert("ok3");
                            if (typeof (tr_nuevo_producto) != 'undefined' && tr_nuevo_producto != null) //No es primero de todos??
                            {
                                //alert("ok4");
                                //Guardamos datos para contigunar con el siguiente grupo
                                //cantidadSubTotal += parseInt((tr_nuevo_producto.find("input.cantidad_esperada")).val());
                                ultimoPrecio = ultimoPrecio * cantidadSubTotal;

                                //Guardamos los datos
                                tr_nuevo_producto.find('input.cantidad_total').val(cantidadSubTotal);
                                tr_nuevo_producto.find('em.cantidad_total').text(addCommas(cantidadSubTotal));

                                tr_nuevo_producto.find('input.precio_sub_total').val(ultimoPrecio);
                                tr_nuevo_producto.find('em.precio_sub_total').text(addCommas(ultimoPrecio.toFixed(2)));
                            }
                            tr_nuevo_producto = $(this);
                            ultimoPrecio = parseFloat(tr_nuevo_producto.find("input.precio_unitario").val().replace(',', ''));
                            cantidadSubTotal = parseInt((tr_nuevo_producto.find("input.cantidad_esperada")).val());
                            //alert("ultimo precio: " + ultimoPrecio);
                            //alert("cantidad: " + cantidadSubTotal);
                        }
                        else {
                            //alert("ok5");
                            //Ni ultimo ni primero
                            cantidadSubTotal = cantidadSubTotal + parseInt($(this).find("input.cantidad_esperada").val());
                        }
                    }
                    //alert("fin");
                });

                var precios_sub_totales = $(tr_list).find("input.precio_sub_total");
                //var precios_sub_totales = $("input.precio_sub_total");
                var total = 0;
                $(precios_sub_totales).each(function () {
                    total = total + parseFloat($(this).val().replace(',', ''));
                });
                total = total.toFixed(2);

                $("#total").text(addCommas(total));
            }

            //function calcular_totales() {
            //    calcular_sub_totales();
            //}

            //---------------------Funcion que elimina(Oculta y cambia el estado) un producto de la lista de productos importados --------------------------//

            function eliminar_producto(elemento) {
                //alert("eliminar producto");
                var tr_class = $(elemento).closest('tr').attr('id');
                var aux = $(elemento).closest('tbody').find('tr:visible.' + tr_class);
                $(aux).each(function () {
                    var celda_socio = $(this).find('td.socio');
                    var input_producto_de_socio = $(celda_socio).find('input.eliminar_producto_de_socio');
                    $(input_producto_de_socio).val('-1'); //Marcamos para eliminar
                    var input_cantidad_esperada = $(this).find('input.cantidad_esperada');
                    $(input_cantidad_esperada).remove();
                    $(celda_socio).removeAttr('id');

                    if ($(this).hasClass('nuevo_producto')) {
                        var celda_producto = $(this).find('td.producto');
                        var input_producto_esperado = $(celda_producto).find('input.eliminar_producto_esperado');
                        $(input_producto_esperado).val('-1'); //Marcamos para eliminar

                        var input_precio_unitario = $(this).find('input.precio_unitario');
                        var input_numero_de_lote = $(this).find('input.numero_de_lote');
                        var input_fecha_de_vencimiento = $(this).find('input.fecha_de_vencimiento');

                        $(celda_producto).removeAttr('id');

                        $(this).removeAttr('id');

                        $(input_precio_unitario).remove();
                        $(input_numero_de_lote).remove();
                        $(input_fecha_de_vencimiento).remove();

                    }
                    $(this).removeAttr('class');
                    $(this).hide();
                });
                // alert("ok2");
                calcular_totales();
            }

            function eliminar_socio(elemento) {
                //event.preventDefault();
                //alert("eliminar socio");
                //alert($(elemento).closest("tr").find('input.cantidad_esperada').val());
                if ($(elemento).closest("tr.nuevo_producto").length != 0) {
                    //Significa q es el primer elemento. Verificamos si hay elementos posteriores
                    //alert("Primer elemento");
                    tr_nuevo_producto = $(elemento).closest("tr.nuevo_producto");
                    var next_tr = $(tr_nuevo_producto).nextAll('tr:visible').first();
                    if ($(next_tr).length != 0 && !$(next_tr).hasClass("nuevo_producto")) {
                        //Tenemos que mover las celdas posteriores a esta y actualizar el rowspan
                        var celda_producto = $(tr_nuevo_producto).find('td.producto');

                        var rowspan = parseInt(celda_producto.attr("rowspan"));
                        rowspan = rowspan - 1;

                        celda_producto.attr('rowspan', rowspan);
                        tr_nuevo_producto.find('td.precio_unitario').attr('rowspan', rowspan);
                        tr_nuevo_producto.find('td.numero_de_lote').attr('rowspan', rowspan);
                        tr_nuevo_producto.find('td.fecha_de_vencimiento').attr('rowspan', rowspan);
                        tr_nuevo_producto.find('td.cantidad_total').attr('rowspan', rowspan);
                        tr_nuevo_producto.find('td.precio_sub_total').attr('rowspan', rowspan);
                        tr_nuevo_producto.find('td.eliminar_producto').attr('rowspan', rowspan);

                        //var input_producto_esperado = $(tr_nuevo_producto).find('input.producto_esperado');
                        //var input_producto_de_socio = $(next_tr).find('input.producto_de_socio');

                        var input_eliminar_producto_de_socio = $(tr_nuevo_producto).find('input.eliminar_producto_de_socio');//Indicador de si se eleminia o no
                        $(input_eliminar_producto_de_socio).val('-1'); //Marcamos para eliminar
                        //alert($(tr_nuevo_producto).find('input.eliminar_producto_de_socio').val());

                        var input_cantidad_esperada = $(tr_nuevo_producto).find('input.cantidad_esperada');
                        input_cantidad_esperada.remove();//eliminamos para evitar validaciones

                        //var next_input_producto_de_socio = $(next_tr).find('input.producto_de_socio');

                        var td_socio = $(tr_nuevo_producto).find('td.socio');
                        var td_cantidad_esperada = $(tr_nuevo_producto).find('td.cantidad_esperada');
                        var next_td_socio = $(next_tr).find('td.socio');
                        var next_td_cantidad_esperada = $(next_tr).find('td.cantidad_esperada');
                        var next_td_eliminar_socio = $(next_tr).find('td.eliminar_socio');

                        td_cantidad_esperada.after(next_td_cantidad_esperada); //Subimos las celdas
                        td_socio.after(next_td_socio);
                        //next_td_socio.find('input.producto_de_socio').after(input_producto_de_socio);
                        //next_td_socio.find('input.producto_de_socio').after(input_producto_esperado);

                        next_td_eliminar_socio.before(td_socio); //Bajamos las celdas
                        next_td_eliminar_socio.before(td_cantidad_esperada);
                        //td_socio.find("input.socio").before(next_input_producto_de_socio);



                        td_socio.removeAttr('id');
                        td_socio.removeAttr('class');
                        next_tr.hide();
                        //alert($(next_tr).find('input.eliminar_producto_de_socio').val());
                    }
                    else {
                        //alert("Unico elemento");
                        var celda_producto = $(tr_nuevo_producto).find('td.producto');
                        var celda_socio = $(tr_nuevo_producto).find('td.socio');
                        var input_producto_esperado = $(celda_producto).find('input.eliminar_producto_esperado');
                        var input_producto_de_socio = $(celda_socio).find('input.eliminar_producto_de_socio');

                        var input_cantidad_esperada = $(tr_nuevo_producto).find('input.cantidad_esperada');
                        var input_precio_unitario = $(tr_nuevo_producto).find('input.precio_unitario');
                        var input_numero_de_lote = $(tr_nuevo_producto).find('input.numero_de_lote');
                        var input_fecha_de_vencimiento = $(tr_nuevo_producto).find('input.fecha_de_vencimiento');

                        $(input_producto_esperado).val('-1'); //Marcamos para eliminar
                        $(input_producto_de_socio).val('-1'); //Marcamos para eliminar
                        $(celda_producto).removeAttr('id');
                        $(celda_socio).removeAttr('id');
                        $(tr_nuevo_producto).removeAttr('id');
                        $(tr_nuevo_producto).removeAttr('class');

                        $(input_cantidad_esperada).remove();
                        $(input_precio_unitario).remove();
                        $(input_numero_de_lote).remove();
                        $(input_fecha_de_vencimiento).remove();
                        $(tr_nuevo_producto).hide();
                    }
                }
                else {
                    //Significa que no es el primer elemento
                    //alert("No es el primer elemento");
                    var tr = $(elemento).closest("tr");
                    var id_producto = tr.find('input.producto_de_socio').val();
                    var tr_nuevo_producto = $('tr#' + id_producto);

                    var celda_producto = $(tr_nuevo_producto).find('td.producto');
                    var rowspan = parseInt(celda_producto.attr("rowspan"));
                    rowspan = rowspan - 1;

                    celda_producto.attr('rowspan', rowspan);
                    tr_nuevo_producto.find('td.precio_unitario').attr('rowspan', rowspan);
                    tr_nuevo_producto.find('td.numero_de_lote').attr('rowspan', rowspan);
                    tr_nuevo_producto.find('td.fecha_de_vencimiento').attr('rowspan', rowspan);
                    tr_nuevo_producto.find('td.cantidad_total').attr('rowspan', rowspan);
                    tr_nuevo_producto.find('td.precio_sub_total').attr('rowspan', rowspan);
                    tr_nuevo_producto.find('td.eliminar_producto').attr('rowspan', rowspan);

                    $(tr).find('input.cantidad_esperada').remove();

                    tr.find('input.eliminar_producto_de_socio').val('-1'); //Marcamos para eliminar
                    tr.find('td.socio').removeAttr('id');
                    tr.find('td.socio').removeAttr('class');
                    $(tr).hide();
                }
                calcular_totales();
            }

            //function calcula_sub_total(elemento) {
            //    //alert("mensaje: " + ($(elemento).val()));
            //    var fila = $(elemento).closest("tr.nuevo_producto");
            //    var subtotal = parseFloat(fila.find(".cantidad").val()) * parseFloat(fila.find(".precio").val().replace(',', '.'));
            //    fila.find(".subtotal").val(addCommas(subtotal.toFixed(2)));
            //    calcula_total();
            //};

            //function calcula_total() {
            //    var total = 0;
            //    $('input.subtotal ').each(function () {
            //        total = total + parseFloat($(this).val().replace(',', ''));
            //    });
            //    total = total.toFixed(2);

            //    $("#total").text(addCommas(total));
            //}

            function addCommas(nStr) {
                nStr += '';
                x = nStr.split('.');
                x1 = x[0];
                x2 = x.length > 1 ? '.' + x[1] : '';
                var rgx = /(\d+)(\d{3})/;
                while (rgx.test(x1)) {
                    x1 = x1.replace(rgx, '$1' + ',' + '$2');
                }
                return x1 + x2;
            }
            function actualizar_lista(elemento) {
                var valor = ($(elemento).val());
                if (valor == '') {
                    //volver a agregar a la lista de productos
                    $('.productoSeleccionado').each(function (index, data) {
                        if ($.isNumeric($(this).val())) {
                            var value = $(this).val();
                            //alert(value);
                        }
                    });
                }
                else {
                    //Eliminar de la lista de prod y agregar a la lista de eliminados
                    var aux = listaDeProductos.filter(function (i) {
                        return i.ProductoID != valor;
                    });
                    listaDeProductos = aux;
                    //alert(valor);

                }
            };


            $("select#Concepto").change(function () {
                //alert("mensaje: "+($(this).val()));
                var obj = { Concepto: $(this).val() };
                //var elementoHtml = $(this);
                nuevoCodigo = null;
                $.ajax({
                    type: "POST",

                    // lugar donde se aloja nuestro web service
                    url: "http://localhost:6490/Service/WebServiceGetProductos.asmx/ObtenerCodigoParaIngresoDeProducto",
                    dataType: "json",
                    data: JSON.stringify(obj),
                    contentType: "application/json; charset=utf-8",
                    success: function (data) {
                        nuevoCodigo = JSON.parse(data.d);
                        //var contenedor_principal = $(elementoHtml).closest("div#ContendedorPrincipal");
                        $("input#CodigoDeIngresoDeProducto1").val(nuevoCodigo);
                        $("input#CodigoDeIngresoDeProducto2").val(nuevoCodigo);
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert(textStatus + " Error: " + XMLHttpRequest.responseText);
                    }
                });
            });

        </script>
        @Scripts.Render("~/bundles/jqueryval")

    }
